package controlador;

    import java.awt.event.ActionEvent;
	import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import modelo.Conexion;
import modelo.Inspeccion;
import modelo.InspeccionDao;

import vista.VInspeccion;;

public class CVInspeccion implements ActionListener {
	


		private VInspeccion vInspeccion;
		private InspeccionDao inspeccionDao;
		
		public CVInspeccion() {
			
			vInspeccion = new VInspeccion();
			vInspeccion.setLocationRelativeTo(null);
			vInspeccion.setVisible(true);
			vInspeccion.agregarListener(this);
            vInspeccion.limpiarDatos();
			vInspeccion.habilitarModificacion(true);
		
			
		}

		@Override
		public void actionPerformed(ActionEvent e) {
		
			if (e.getActionCommand().equals("Registrar Inspeccion")){
			
				RegistarInspeccion();
				
			} else if (e.getActionCommand().equals("Cancelar")){
				
				cancelar();
				
			}  else if (e.getActionCommand().equals("Salir")){
				
				vInspeccion.dispose();
				
			}  else if (e.getActionCommand().equals("Eliminar")){
				
				Eliminar();
				
			} else if (e.getActionCommand().equals("Buscar")){
				
				Buscar();
				
			} else if (e.getActionCommand().equalsIgnoreCase(("Modificar"))){
				
				vInspeccion.mostrarMensaje("Se modificó la inspección");
				Modificar();
				
			}
			
			
		}
		
		private void Modificar(){
			
			String codigo, fecha, placa, codperito, descripcion;
			
			codigo = vInspeccion.getCodigo();
			fecha = vInspeccion.getFecha();
			placa = vInspeccion.getPlaca();
			codperito = vInspeccion.getCodPerito();
			descripcion = vInspeccion.getDescripcion();
										
			Inspeccion inspeccion = new Inspeccion(codigo, fecha, placa, codperito, descripcion);
			inspeccionDao.modificarInspeccion(inspeccion);
		
		}
			
			private void Buscar() {
				Inspeccion inspec = new Inspeccion();
				String codigo;
				codigo = vInspeccion.getCodigo();
				inspeccionDao = new InspeccionDao();				
				inspec = inspeccionDao.consultarInspeccion(codigo);
				if(inspec != null)
					vInspeccion.mostrarInspeccion(inspec);
				else
					vInspeccion.mostrarMensaje("No se encuentra la inspeccion");
		}

			private void Eliminar() {
				String tiraSQL = "SELECT * FROM inspeccion";
				ResultSet resultSet = Conexion.consultar(tiraSQL);		
				try {
					while (resultSet.next()) {
						if (vInspeccion.getCodigo().equalsIgnoreCase(resultSet.getString("ins_cod"))){
							
							tiraSQL = "DELETE FROM inspeccion "+
					 				 "WHERE ins_cod = '" + vInspeccion.getCodigo() +"'";

							Conexion.ejecutar(tiraSQL);
							vInspeccion.mostrarMensaje("Se a eliminado la inspeccion");
							break;
						}
										
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}
		}

			private void RegistarInspeccion() {
				
					
					if (vInspeccion.Chequear()){
						vInspeccion.mostrarMensaje("Debe seleccionar y completar todos los campos");
					}
					else{
						
						try{
							
							String codigo, fecha, placa, codperito, descripcion;
							
							
							codigo = vInspeccion.getCodigo();
							fecha = vInspeccion.getFecha();
							placa = vInspeccion.getPlaca();
							codperito = vInspeccion.getCodPerito();
							descripcion = vInspeccion.getDescripcion();
														
							Inspeccion inspeccion = new Inspeccion(codigo, fecha, placa, codperito, descripcion);
						
							inspeccionDao = new InspeccionDao();
							inspeccionDao.registrarInspeccion(inspeccion);
						    
							vInspeccion.mostrarMensaje("inspeccion Registrada satisfactoriamente");
						}
						catch(NumberFormatException e){
							vInspeccion.mostrarMensaje("Los campos edad, cedula y telefono deben ser numericos");
						}
					}
			}

		private void cancelar() {
			
			vInspeccion.limpiarDatos();
			vInspeccion.habilitarModificacion(true);
			vInspeccion.bloquearDatos(true);
		
		}

	
		
		
	}



